In [2]:
import json
import plotly.express as px
import pandas as pd
In [3]:
filename = 'F:/OneDrive/MYW/data_science/earthquake/eq_data_30_day_m1.json'
with open(filename) as f:
    all_eq_data = json.load(f)
In [4]:
all_eq_dicts = all_eq_data['features']
mags,titles,lons,lats = [],[],[],[]
for eq_dict in all_eq_dicts:
    try:
        mag = eq_dict['properties']['mag']
        title = eq_dict['properties']['title']
        lon = eq_dict['geometry']['coordinates'][0]
        lat = eq_dict['geometry']['coordinates'][1]
    except ValueError:
        continue
    else:
        mags.append(mag)
        titles.append(title)
        lons.append(lon)
        lats.append(lat)
In [5]:
data = pd.DataFrame(
    data=zip(lons,lats,titles,mags),columns=['经度','纬度','位置','震级']
)
data.head()
Out[5]:
经度 纬度 位置 震级
0 -116.794167 33.486333 M 1.0 - 8km NE of Aguanga, CA 0.96
1 -148.986500 64.667300 M 1.2 - 11km NNE of North Nenana, Alaska 1.20
2 -74.234300 -12.102500 M 4.3 - 69km NNW of Ayna, Peru 4.30
3 -161.680100 54.223200 M 3.6 - 126km SSE of Cold Bay, Alaska 3.60
4 -118.531667 35.309833 M 2.1 - 21km NNW of Tehachapi, CA 2.10
In [6]:
fig = px.scatter(data_frame=data,x='经度',y='纬度',
                 range_x=[-200,200],range_y=[-90,90],width=800,height=800,
                 title='全球地震散点图',
                 size='震级',size_max=10,
                 color='震级',
                 hover_name='位置')
fig.write_html('global_erath.html')
fig.show()
In [ ]: